flowchart BT
  RequiredToBeUniform -.-> workgroupBarriercall;
  CFreturn -.-> CFstart;
  wgididentexpr -.-> CFstart;
  binaryexprresult -.-> wgididentexpr;
  binaryexprresult -.-> CFstart;
  ifstmt -.-> binaryexprresult;
  workgroupBarriercall -.-> ifstmt;
  CFafterworkgroupBarrier -.-> workgroupBarriercall;

  style MayBeNonUniform fill:#941b1b
  style RequiredToBeUniform fill:#1818ab

  CFstart([CF_start]);
  CFreturn([CF_return]);
  wgididentexpr[formal_param_expr: wgid];
  binaryexprresult[binar_expr: wgid.x == 1];
  ifstmt([if_stmt: wgid.x == 1]);
  workgroupBarriercall([call: workgroupBarrier]);
  CFafterworkgroupBarrier([CF_after_workgroupBarrier]);
